package codigoIntermedio;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Terceto {
	
	private String operando1, operando2;
	private String operador;
	private String tipoOp1, tipoOp2;
	private int identificador;
	
	public Terceto(String op1, String op2, String operador){
		operando1 = op1.replace("-", "n");
		operando2 = op2.replace("-", "n");
		this.operador = operador;
	}

	private static HashMap<String, List<Terceto>> funciones = new HashMap<String, List<Terceto>>();
	
	public static HashMap<String, List<Terceto>> getFunciones() {
		return funciones;
	}

	public static void setFunciones(HashMap<String, List<Terceto>> funciones) {
		Terceto.funciones = funciones;
	}

	private static List<Terceto> tercetos = new ArrayList<Terceto>();
	
	public static boolean setTercetosAsFunction(String functionName){
		boolean toReturn = false;
		if (funciones.get(functionName) == null){
			funciones.put(functionName,	tercetos);
			toReturn = true;
		} else {
			System.out.println("Error, funcion repetida.");
		}
		tercetos = new ArrayList<Terceto>();
		return toReturn;
	}
	
	public String getOperando1() {
		return operando1;
	}

	public void setOperando1(String operando1) {
		this.operando1 = operando1;
	}

	public String getOperando2() {
		return operando2;
	}

	public void setOperando2(String operando2) {
		this.operando2 = operando2;
	}

	public String getOperador() {
		return operador;
	}

	public void setOperador(String operador) {
		this.operador = operador;
	}

	public String getTipoOp1() {
		return tipoOp1;
	}

	public void setTipoOp1(String tipoOp1) {
		this.tipoOp1 = tipoOp1;
	}

	public String getTipoOp2() {
		return tipoOp2;
	}

	public void setTipoOp2(String tipoOp2) {
		this.tipoOp2 = tipoOp2;
	}

	public Integer getIdentificador() {
		return identificador;
	}

	public void setIdentificador(int identificador) {
		this.identificador = identificador;
	}

	public static List<Terceto> getTercetos() {
		return tercetos;
	}

	public static void addTerceto(Terceto t) {
		t.setIdentificador(tercetos.size()+1);
		tercetos.add(t);
	}
	
	@Override
	public String toString(){
		return "#" + identificador + " - [" +  operador + "\t" + operando1 + "\t" + operando2 + "]";
	}
}
